﻿Imports Logica
Imports System.Data.SqlClient

Partial Class RegistrarMeta
    Inherits System.Web.UI.Page

    ''' <summary>
    ''' Valida los campos y registra la meta.
    ''' </summary>
    ''' <remarks>Creado por: Elías Baldioceda, Fecha: 27/07/2010, Modificado: 27/07/2010</remarks>
    Protected Sub btnRegistrar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnRegistrar.Click
        Dim fechaInicio As Date
        Dim fechaEsperada As Date

        Try
            If txtDescripcion.Text.Trim = "" Then
                Throw New Exception("El campo 'Descripción' está vacío.")
            ElseIf txtFechaInicio.Text.Trim = "" Then
                Throw New Exception("El campo 'Fecha de Inicio' está vacío.")
            ElseIf txtFechaEsperada.Text.Trim = "" Then
                Throw New Exception("El campo 'Fecha Esperada' está vacío.")
            End If

            fechaInicio = CDate(txtFechaInicio.Text)
            fechaEsperada = CDate(txtFechaEsperada.Text)
			
            If fechaEsperada < fechaInicio Then
                Throw New Exception("La fecha esperada no puede ser anterior a la fecha de inicio.")
            End If

            Gestor.agregarMeta(Request.QueryString("idUsuario"), txtDescripcion.Text, fechaInicio, fechaEsperada)

            Response.Redirect("ConsultarMetas.aspx?id=" & Request.QueryString("idUsuario"))
        Catch ex As InvalidCastException
            lblError.ForeColor = Drawing.Color.Red
            lblError.Text = "El formato de la fecha ingresada es inválido."
        Catch exc As SqlException
            If exc.Number = 547 Then
                lblError.ForeColor = Drawing.Color.Red
                lblError.Text = "Este usuario no existe."
            Else
                lblError.ForeColor = Drawing.Color.Red
                lblError.Text = "Error de conexión."
            End If
        Catch exc As Exception
            lblError.ForeColor = Drawing.Color.Red
            lblError.Text = exc.Message
        End Try
    End Sub

    Protected Sub btnRegistrar_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnRegistrar.Load
        If Not Gestor.usuarioTienePermiso(Session("identificacion"), 57) Then
            Response.Redirect("SinPermisos.aspx")
        End If

        If Request.QueryString("idUsuario") Is Nothing Then
            btnRegistrar.Enabled = False
            lblError.ForeColor = Drawing.Color.Red
            lblError.Text = "No ha seleccionado un usuario."
        End If
    End Sub
End Class
